1. Field of Invention
The present invention relates to signal processing generally and more particularly to the storage and retrieval of sampled data from multiple asynchronous signals, especially in applications involving large data sets.
2. Description of Related Art
As computer-based simulations of dynamic systems such as integrated circuit designs become larger and more complex, the sheer volume of multi-dimensional output generated by such simulations is rapidly exhausting the ability of analysis tools to manage and post-process such data. One of the biggest challenges in representing very large and wide time-series data is organizing and storing the layout structure in a manner that permits high-performance reading, writing, and visualization of such data. While some conventional schemes allow for rapid output and storage of data, they generally do not facilitate rapid reading of the stored data, especially for those schemes with multiple asynchronous anisotemporal sampling rates (also referred to as multi-rate data sampling). Conversely, other conventional schemes may allow for rapid retrieval of data, but do not facilitate rapid storage of the data. Still others may provide both rapid reading and writing of data, but do not facilitate post-analysis, manipulation, or visualization of stored data. Finally, the ability to scale conventional schemes to increasingly larger numbers of signal sets creates additional performance and scalability bottlenecks. (See, for example, U.S. Pat. No. 6,301,578, “Method of Compressing Integrating Circuit Simulation Data,” Oct. 9, 2001.)
Conventional solutions have generally focused on providing internal buffering and reorganization as a means to improve input/output performance. These solutions work reasonably well for limited number of data signals (on the order of thousands, as opposed to millions of signals). However, when the number of signals to be buffered becomes too large, the memory overhead reduces the total memory available to the running program and thereby adversely affects performance and scalability. For large-scale simulation applications, memory demands are severe enough that imposing additional overhead renders such techniques impractical.
Another major drawback with many conventional solutions is that they attempt to locate requested data segments as precisely as possible using their logical disk locations. Such precise locating of data may involves a number of overhead requirements including: constructing relatively large indexes for locating the data, requiring a large number of disk seeks and reads to compute the precise starting location for data reads, computing precise stride lengths to retrieve subsequent data. As a result, these approaches lack the ability to provide size- and scale-independent access performance when retrieving and visualizing very large and wide time-series data sets. As the complexity and speed of circuit simulation applications have progressively increased, the ability of existing data representations to scale up in performance to match the larger data volumes has lagged significantly. For example, a simulation dataset consisting of thousands of analog signals with several hundred million time samples may take minutes or even hours to retrieve, display, and manipulate with a conventional visualization program. Furthermore, prior solutions have generally not addressed the performance challenges created by anisotemporal signal streams. Such streams are increasingly used for minimizing data storage space and reducing post-processing overhead.
Thus, there is a need for improved methods and systems for storage and retrieval of multiple asynchronous signals.